package org.jeecg.modules.demo.baseorde.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.demo.baseorde.entity.BaseOrder;
import org.jeecg.modules.demo.baseorde.entity.BaseOrderCommodityJson;
import org.jeecg.modules.demo.baseorde.entity.BaseOrderInfo;

import java.util.List;

/**
 * @Description: 订单
 * @Author: jeecg-boot
 * @Date: 2022-01-27
 * @Version: V1.0
 */
public interface IBaseOrderService extends IService<BaseOrder> {
    /**
     * 查询订单列表
     *
     * @param
     * @return
     */
    IPage<BaseOrder> searchOrderList(Page<BaseOrder> page, String stockName, String memberName, String orderCode,
                                            String beginTime, String endTime, String name, String patternPayment, String orderType,
                                            String orderStatus, String storeId);

    List<BaseOrder> searchOnlineOrderList(String memberName, String orderCode,
                                                 String beginTime, String endTime, String memberPhone,
                                                 String orderStatus, String storeId);

    /**
     * 查询待付款订单数量
     */
    String getPendingPayOrderQty(String storeId);

    /**
     * 查询退款中订单数量
     */
    String getRefundingOrderQty(String storeId);

    /**
     * 查询今日订单数量
     *
     * @return
     */
    String getOrderQtyToday(String storeId);

    /**
     * 查询今日订单数量
     *
     * @return
     */
    String getOrderQtyday(String storeId, String day);


    /**
     * 获取本月订单数量
     *
     * @return
     */
    String getOrderQtyThisMonth(String storeId);

    /**
     * 在线订单自提
     *
     * @param orderId
     */
    void selfMention(String orderId);

    /**
     * 在线订单退款
     *
     * @param orderId
     */
    void refund(String orderId);

    /**
     * 根据会员id获取订单列表
     */
    List<BaseOrderInfo> getOrderInfoListByMemberId(Integer pageNo, Integer pageSize,
                                                          String storeId, String memberId, String orderStatus);

    void updateConsumeNoticeFlag(Integer consumeNoticeFlag, String id);

    void addCommodityJson(BaseOrderCommodityJson entity);
}
